Map indicates the layout of the F1 generation resulting from a cross between EC201 and EC103 parents. Column 1 is approximately lengthways facing north.
“Map of F1 Trees”
Diagram indicates the areas of leaf collection regarding height. Each Tree had 10 leaves collected, 3 from Low, 4 from Mid and 3 from High. The first leaf sampled was measured twice for replication comparison.
“Diagram of leaf collection levels”
“Full.xlsx” contains measurement information from sampling with the Dualex (https://www.force-a.com/en/capteurs-optiques-optical-sensors/dualex-scientific-chlorophyll-meter/), including;
Surface content of chlorophyll in ?g/cm? (Chl)
The index of epidermal flavanols (Flav)
Nitrogen Balance Index status (NBI)
Epidermal Anthocyanins (Anth).
It also contains information about the block position, the leaf height information, and presense or absence of flowering
Sheet “Dup” contains only the samples that were replicated.
# Import Data Measures
Data <-read.xlsx("Full.xlsx", sheetName ="Full")
head(Data)
## Collection.Day Allocation Block Column Row group Group.ID Tree.ID Rep.
## 1 4 CG 0 0 0 20 OG CG N
## 2 4 CG 0 0 0 20 OG CG N
## 3 4 CG 0 0 0 20 OG CG N
## 4 4 CG 0 0 0 20 OG CG N
## 5 4 CG 0 0 0 20 OG CG N
## 6 4 CG 0 0 0 20 OG CG N
## measure Height Flower Chl Flav Anth NBI
## 1 9 H Y 28.220 2.418 0.205 11.67
## 2 3 L Y 27.958 2.298 0.691 12.17
## 3 11 H Y 33.727 2.458 0.527 13.72
## 4 4 L Y 25.938 1.758 0.172 14.76
## 5 10 H Y 36.205 2.283 0.270 15.86
## 6 6 M Y 34.332 2.115 0.150 16.23
# Import Replicate Data
Dup <-read.xlsx("Full.xlsx", sheetName ="Dup")
head(Dup)
## Collection.Day group Group.ID Tree.ID Rep. measure Height Chl Flav
## 1 2.0 23 60 IN4DV Y1 1 L 1.916 2.363
## 2 1.5 3 1 IN4BT Y1 1 L 3.124 2.300
## 3 2.0 17 54 IN4DL Y2 2 L 3.414 1.826
## 4 1.5 32 28 IN4CP Y2 2 L 4.097 1.943
## 5 2.0 9 46 IN4DC Y1 1 L 4.909 1.928
## 6 1.5 5 3 IN4BW Y1 1 L 4.924 1.848
## Anth NBI
## 1 0.174 0.81
## 2 0.191 1.36
## 3 0.112 1.87
## 4 0.051 2.11
## 5 0.103 2.55
## 6 0.165 2.66
#Isolate Crimson Glory Outgroup
CG = Data[c(1:11),]
head(CG)
## Collection.Day Allocation Block Column Row group Group.ID Tree.ID Rep.
## 1 4 CG 0 0 0 20 OG CG N
## 2 4 CG 0 0 0 20 OG CG N
## 3 4 CG 0 0 0 20 OG CG N
## 4 4 CG 0 0 0 20 OG CG N
## 5 4 CG 0 0 0 20 OG CG N
## 6 4 CG 0 0 0 20 OG CG N
## measure Height Flower Chl Flav Anth NBI
## 1 9 H Y 28.220 2.418 0.205 11.67
## 2 3 L Y 27.958 2.298 0.691 12.17
## 3 11 H Y 33.727 2.458 0.527 13.72
## 4 4 L Y 25.938 1.758 0.172 14.76
## 5 10 H Y 36.205 2.283 0.270 15.86
## 6 6 M Y 34.332 2.115 0.150 16.23
#Isolate East Cape 201 Parent
EC201 = Data[c(12:21),]
head(EC201)
## Collection.Day Allocation Block Column Row group Group.ID Tree.ID Rep.
## 12 4 EC201 0 0 0 18 P1 EC201 N
## 13 4 EC201 0 0 0 18 P1 EC201 N
## 14 4 EC201 0 0 0 18 P1 EC201 N
## 15 4 EC201 0 0 0 18 P1 EC201 N
## 16 4 EC201 0 0 0 18 P1 EC201 N
## 17 4 EC201 0 0 0 18 P1 EC201 N
## measure Height Flower Chl Flav Anth NBI
## 12 9 H Y 30.722 2.138 0.156 14.37
## 13 6 M Y 45.272 1.861 0.075 24.33
## 14 10 H Y 46.174 1.868 0.052 24.72
## 15 8 M Y 57.480 1.897 0.037 30.30
## 16 5 M Y 57.752 1.681 0.125 34.35
## 17 3 L Y 54.927 1.592 0.061 34.50
#Isolate East Cape 103 Parent
EC103 = Data[c(22:33),]
head(EC103)
## Collection.Day Allocation Block Column Row group Group.ID Tree.ID Rep.
## 22 4 EC103 0 0 0 19 P2 EC103 N
## 23 4 EC103 0 0 0 19 P2 EC103 N
## 24 4 EC103 0 0 0 19 P2 EC103 N
## 25 4 EC103 0 0 0 19 P2 EC103 N
## 26 4 EC103 0 0 0 19 P2 EC103 N
## 27 4 EC103 0 0 0 19 P2 EC103 N
## measure Height Flower Chl Flav Anth NBI
## 22 8 M Y 31.471 1.324 0.018 23.77
## 23 11 H Y 57.349 2.111 0.053 27.17
## 24 4 L Y 43.949 1.478 0.004 29.73
## 25 12 H Y 56.779 1.846 0.108 30.75
## 26 9 M Y 55.916 1.746 0.055 32.03
## 27 10 H Y 57.809 1.746 0.054 33.11
#Isolate Offspring from the Parental Cross
F1 = Data[c(34:1825),]
head(F1)
## Collection.Day Allocation Block Column Row group Group.ID Tree.ID Rep.
## 34 1 F1 1 1 1 15 1 IN4BT N
## 35 1 F1 1 1 1 15 1 IN4BT N
## 36 1 F1 1 1 1 15 1 IN4BT N
## 37 1 F1 1 1 1 15 1 IN4BT N
## 38 1 F1 1 1 1 15 1 IN4BT N
## 39 1 F1 1 1 1 15 1 IN4BT Y1
## measure Height Flower Chl Flav Anth NBI
## 34 8 M N 3.268 1.958 0.143 1.67
## 35 2 L N 23.326 2.581 0.065 9.04
## 36 11 M N 24.682 2.265 0.112 10.90
## 37 7 M N 27.068 2.229 0.084 12.14
## 38 14 H N 27.459 2.135 0.138 12.86
## 39 3 L N 34.592 2.583 0.048 13.39
Replicates were taken by measuring a leaf sample of each tree twice, in order to establish consistency and reliability of measurements with the Dualex.
#Anthocyanin Mean
AMR = mean(Dup$Anth);AMR
## [1] 0.09799367
#Chlorophyll Mean
CMR = mean(Dup$Chl);CMR
## [1] 35.7627
#Flavanoid Mean
FMR = mean(Dup$Flav);FMR
## [1] 1.967206
#NBI Mean
NMR = mean(Dup$NBI);NMR
## [1] 18.73399
#Boxplot Anthocyanin Replicates
RAnth <- ggplot(Dup) + aes(x = Rep., y = Anth) + geom_boxplot() +geom_hline(yintercept = AMR, color = "purple4") + ylab("Anthocyanin Content") + xlab("Leaf Replicate Number") + ggtitle("Anthocyanin Measurements of Two Replicate Groups") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot Chlorophyll Replicates
RChl<- ggplot(Dup) + aes(x = Rep., y = Chl) + geom_boxplot(colour = "darkorchid", fill = "plum") +geom_hline(yintercept = CMR, color = "darkorchid") + ylab("Chlorophyll g/cm") + xlab("Replicate Number") + ggtitle("Comparison of Chlorophyll levels of two replicate groups") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot Flavnol Replicates
RFlav <- ggplot(Dup) + aes(x = Rep., y = Flav) + geom_boxplot() +geom_hline(yintercept = FMR, color = "purple4") + ylab("Flavanold Content") + xlab("Leaf Replicate Number") + ggtitle("Flavonoid Measurements of Two Replicate Groups") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot NBI Replicates
RNBI <- ggplot(Dup) + aes(x = Rep., y = NBI) + geom_boxplot() +geom_hline(yintercept = NMR, color = "purple4") + ylab("Nitrogen Balance Index") + xlab("Leaf Replicate Number") + ggtitle("Nitrogen Balance Index of Two Replicate Groups") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Display Boxplots
grid.arrange(RChl,RNBI,RAnth,RFlav, ncol = 2)
#Chlorophyll Anova
mod <-lm(Dup$Chl ~ Dup$Rep.)
anova(mod)
## Analysis of Variance Table
##
## Response: Dup$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## Dup$Rep. 1 218 218.33 1.033 0.3102
## Residuals 314 66366 211.36
#Flavanol Anova
mod2 <-lm(Dup$Flav ~ Dup$Rep.)
anova(mod2)
## Analysis of Variance Table
##
## Response: Dup$Flav
## Df Sum Sq Mean Sq F value Pr(>F)
## Dup$Rep. 1 0.0521 0.052129 0.6506 0.4205
## Residuals 314 25.1596 0.080126
#Anthocyanin Anova
mod3 <-lm(Dup$Anth ~ Dup$Rep.)
anova(mod3)
## Analysis of Variance Table
##
## Response: Dup$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## Dup$Rep. 1 0.00003 0.0000304 0.0151 0.9023
## Residuals 314 0.63303 0.0020160
#NBI Anova
mod4 <-lm(Dup$NBI ~ Dup$Rep.)
anova(mod4)
## Analysis of Variance Table
##
## Response: Dup$NBI
## Df Sum Sq Mean Sq F value Pr(>F)
## Dup$Rep. 1 82.5 82.530 1.115 0.2918
## Residuals 314 23241.0 74.016
The absence of statistically significant results indicates that our replicates are likely to be consistent.
Allocation refers to which group measurements were taken from, i.e. A Parental Tree (EC103 or EC201), Outgroup Tree (CG), Parental Offspring (F1)
#Anthocyanin Mean
AMA = mean(Data$Anth);AMA
## [1] 0.09772877
#Chlorophyll Mean
CMA = mean(Data$Chl);CMA
## [1] 35.21443
#Flavanol Mean
FMA = mean(Data$Flav);FMA
## [1] 1.964405
#NBI Mean
NMA = mean(Data$NBI);NMA
## [1] 18.34807
#Boxplot Anthocyanin Replicates
AAnth <- ggplot(Data) + aes(x = Allocation, y = Anth) + geom_boxplot() +geom_hline(yintercept = AMA, color = "purple4") + ylab("Anthocyanin Measure") + xlab("Allocation") + ggtitle("Anthocyanin of Tree Allocation") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot Chlorophyll Replicates
AChl <- ggplot(Data) + aes(x = Allocation, y = Chl) + geom_boxplot() +geom_hline(yintercept = CMA, color = "purple4") + ylab("Chlorophyll Measure") + xlab("Allocation") + ggtitle("Chlorophyll of Tree Allocation") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot Flavanol Replicates
AFlav <- ggplot(Data) + aes(x = Allocation, y = Flav) + geom_boxplot() +geom_hline(yintercept = FMA, color = "purple4") + ylab("Flavanol Measure") + xlab("Allocation") + ggtitle("Flavonol of Tree Allocation") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot NBI Replicates
ANBI <- ggplot(Data) + aes(x = Allocation, y = NBI) + geom_boxplot() +geom_hline(yintercept = NMA, color = "purple4") + ylab("NBI Measure") + xlab("Allocation") + ggtitle("NBI of Tree Allocation") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Display Plots
grid.arrange(AAnth,AChl,AFlav,ANBI, ncol=2)
#Chlorophyll
mod5 <-lm(Data$Chl ~ Data$Allocation)
anova(mod5)
## Analysis of Variance Table
##
## Response: Data$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## Data$Allocation 3 6742 2247.21 9.9149 1.748e-06 ***
## Residuals 1821 412728 226.65
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Nitrogen
mod6 <-lm(Data$NBI ~ Data$Allocation)
anova(mod5)
## Analysis of Variance Table
##
## Response: Data$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## Data$Allocation 3 6742 2247.21 9.9149 1.748e-06 ***
## Residuals 1821 412728 226.65
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Flavanol
mod7 <-lm(Data$Flav ~ Data$Allocation)
anova(mod7)
## Analysis of Variance Table
##
## Response: Data$Flav
## Df Sum Sq Mean Sq F value Pr(>F)
## Data$Allocation 3 2.713 0.90423 14.755 1.708e-09 ***
## Residuals 1821 111.598 0.06128
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Anthocyanin
mod8 <-lm(Data$Anth ~ Data$Allocation)
anova(mod8)
## Analysis of Variance Table
##
## Response: Data$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## Data$Allocation 3 0.3040 0.101343 47.474 < 2.2e-16 ***
## Residuals 1821 3.8873 0.002135
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Binding parents into single dataset
Parent <- rbind(EC201,EC103)
#Anthocyanin Mean
AMP = mean(Parent$Anth)
#Anthocyanin Boxplot
PAnth <- ggplot(Parent) + aes(x = Tree.ID, y = Anth) + geom_boxplot() +geom_hline(yintercept = AMP, color = "purple4") + ylab("Anthocyanin Measure") + xlab("Tree ID") + ggtitle("Anthocyanin of Parent Trees") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Anthocyanin histogram
PHAnth <- ggplot(Parent) + aes(x = Anth) + geom_histogram()
#Anthocyanin Display plots
grid.arrange(PAnth, PHAnth)
## Warning in plyr::split_indices(scale_id, n): '.Random.seed[1]' is not a
## valid integer, so ignored
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin T.test
t.test(Parent$Anth ~ Parent$Tree.ID)
##
## Welch Two Sample t-test
##
## data: Parent$Anth by Parent$Tree.ID
## t = -1.2283, df = 19.107, p-value = 0.2342
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.05154327 0.01340994
## sample estimates:
## mean in group EC103 mean in group EC201
## 0.05883333 0.07790000
#Chlorophyll Mean
CMP = mean(Parent$Chl)
#Chlorophyll Boxplot
PChl <- ggplot(Parent) + aes(x = Tree.ID, y = Chl) + geom_boxplot() +geom_hline(yintercept = CMP, color = "purple4") + ylab("Chlorophyll Measure") + xlab("Tree ID") + ggtitle("Chlorophyll of Parent Trees") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Chlorophyll histogram
PHChl <- ggplot(Parent) + aes(x = Chl) + geom_histogram()
#Anthocyanin Display plots
grid.arrange(PChl, PHChl)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin T.test
t.test(Parent$Chl ~ Parent$Tree.ID)
##
## Welch Two Sample t-test
##
## data: Parent$Chl by Parent$Tree.ID
## t = -0.003842, df = 17.804, p-value = 0.997
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -7.830954 7.802387
## sample estimates:
## mean in group EC103 mean in group EC201
## 52.59242 52.60670
#Flavonol Mean
FMP = mean(Parent$Flav)
#Anthocyanin Boxplot
PFlav <- ggplot(Parent) + aes(x = Tree.ID, y = Flav) + geom_boxplot() +geom_hline(yintercept = FMP, color = "purple4") + ylab("Flavanol Measure") + xlab("Tree ID") + ggtitle("Flavonol of Parent Trees") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Anthocyanin histogram
PHFlav <- ggplot(Parent) + aes(x = Flav) + geom_histogram()
#Anthocyanin Display plots
grid.arrange(PFlav, PHFlav)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin T.test
t.test(Parent$Flav ~ Parent$Tree.ID)
##
## Welch Two Sample t-test
##
## data: Parent$Flav by Parent$Tree.ID
## t = -1.141, df = 19.612, p-value = 0.2676
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -0.31409194 0.09215861
## sample estimates:
## mean in group EC103 mean in group EC201
## 1.599833 1.710800
#NBI Mean
NMP = mean(Parent$NBI)
#NBI Boxplot
PNBI <- ggplot(Parent) + aes(x = Tree.ID, y = NBI) + geom_boxplot() +geom_hline(yintercept = NMP, color = "purple4") + ylab("NBI Measure") + xlab("Tree ID") + ggtitle("Anthocyanin of Parent Trees") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#NBI histogram
PHNBI <- ggplot(Parent) + aes(x = NBI) + geom_histogram()
#Anthocyanin Display plots
grid.arrange(PNBI, PHNBI)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin T.test
t.test(Parent$NBI ~ Parent$Tree.ID)
##
## Welch Two Sample t-test
##
## data: Parent$NBI by Parent$Tree.ID
## t = 0.47573, df = 14.7, p-value = 0.6413
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -5.076667 7.987334
## sample estimates:
## mean in group EC103 mean in group EC201
## 33.14333 31.68800
Investigating measures across the F1 cross population
#Grouping F1 Measures By Tree
F12 <-group_by(F1,Tree.ID)
F12 <- summarise(F12,Chl = mean(Chl,na.rm=T), NBI = mean(NBI, ra.nm = T), Anth = mean(Anth, na.rm=T),Flav = mean(Flav,na.rm =T))
#Anthocyanin Mean
AMF = mean(F12$Anth);AMF
## [1] 0.09699261
#Chlorophyll Mean
CMF = mean(F12$Chl);CMF
## [1] 35.13564
#Flavanol Mean
FMF = mean(F12$Flav);FMF
## [1] 1.965265
#NBI Mean
NMF = mean(F12$NBI); NMF
## [1] 18.27171
#Boxplot Anthocyanin F1
FAnth <- ggplot(F1) + aes(x = Tree.ID, y = Anth) + geom_boxplot() +geom_hline(yintercept = AMF, color = "purple4") + ylab("Anthocyanin Measure") + xlab("Tree ID") + ggtitle("Anthocyanin of F1 population") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of Anthocyanin Distribution
FHAnth <- ggplot(F12) + aes(x = Anth) + geom_histogram()
#Display Anthocyanin Plots
grid.arrange(FAnth,FHAnth)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin ANOVA
FAA = lm(F1$Anth ~ F1$Tree.ID)
anova(FAA)
## Analysis of Variance Table
##
## Response: F1$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Tree.ID 158 0.5253 0.0033247 1.8093 2.001e-08 ***
## Residuals 1633 3.0007 0.0018376
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot Chlorophyll F1
FChl <- ggplot(F1) + aes(x = Tree.ID, y = Chl) + geom_boxplot() +geom_hline(yintercept = CMF, color = "purple4") + ylab("Chlorophyll Measure") + xlab("Tree ID") + ggtitle("Chlorophyll of F1 Population") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of Chlorophyll
FHChl <- ggplot(F12) + aes(x = Chl) + geom_histogram()
#Display Chlorophyll Plots
grid.arrange(FChl, FHChl)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Chlorophyll ANOVA
FCA = lm(F1$Chl ~ F1$Tree.ID)
anova(FCA)
## Analysis of Variance Table
##
## Response: F1$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Tree.ID 158 47130 298.29 1.3395 0.004474 **
## Residuals 1633 363634 222.68
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot Flavanol F1
FFlav <- ggplot(F1) + aes(x = Tree.ID, y = Flav) + geom_boxplot() +geom_hline(yintercept = FMF, color = "purple4") + ylab("Flavanol Measure") + xlab("Tree ID") + ggtitle("Flavonol of F1 Population") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of Flavonol
FHFlav <- ggplot(F12) + aes(x = Flav) + geom_histogram()
#Display Chlorophyll Plots
grid.arrange(FFlav, FHFlav)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Flavonol ANOVA
FFA = lm(F1$Flav ~ F1$Tree.ID)
anova(FFA)
## Analysis of Variance Table
##
## Response: F1$Flav
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Tree.ID 158 25.118 0.15897 3.0531 < 2.2e-16 ***
## Residuals 1633 85.030 0.05207
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot NBI F1
FNBI <- ggplot(F1) + aes(x = Tree.ID, y = NBI) + geom_boxplot() +geom_hline(yintercept = NMF, color = "purple4") + ylab("NBI Measure") + xlab("Tree ID") + ggtitle("NBI of F1 Population") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of NBI
FHNBI <- ggplot(F1) + aes(x = NBI) + geom_histogram()
#Display NBI Plots
grid.arrange(FNBI, FHNBI)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#NBI ANOVA
FNA = lm(F1$NBI ~ F1$Tree.ID)
anova(FNA)
## Analysis of Variance Table
##
## Response: F1$NBI
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Tree.ID 158 16378 103.661 1.5147 8.435e-05 ***
## Residuals 1633 111761 68.439
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot Anthocyanin Height
HAnth <- ggplot(F1) + aes(x = Height, y = Anth) + geom_boxplot() +geom_hline(yintercept = AMF, color = "purple4") + ylab("Anthocyanin Measure") + xlab("Height") + ggtitle("Anthocyanin of F1 population by Height") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot Chlorophyll F1
HChl <- ggplot(F1) + aes(x = Height, y = Chl) + geom_boxplot() +geom_hline(yintercept = CMF, color = "purple4") + ylab("Chlorophyll Measure") + xlab("Height") + ggtitle("Chlorophyll of F1 Population") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot Flavanol F1
HFlav <- ggplot(F1) + aes(x = Height, y = Flav) + geom_boxplot() +geom_hline(yintercept = FMF, color = "purple4") + ylab("Flavanol Measure") + xlab("Height") + ggtitle("Flavonol of F1 Population by Height") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Boxplot NBI F1
HNBI <- ggplot(F1) + aes(x = Height, y = NBI) + geom_boxplot() +geom_hline(yintercept = NMF, color = "purple4") + ylab("NBI Measure") + xlab("Height") + ggtitle("NBI of F1 Population") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
grid.arrange(HAnth,HChl,HFlav,HNBI)
#Anthocyanin ANOVA
HAA = lm(F1$Anth ~ F1$Height)
anova(HAA)
## Analysis of Variance Table
##
## Response: F1$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 0.0526 0.0262759 13.533 1.468e-06 ***
## Residuals 1789 3.4735 0.0019416
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(HAA)
##
## Call:
## lm(formula = F1$Anth ~ F1$Height)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.10400 -0.02878 -0.00056 0.02666 0.37800
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.105002 0.001973 53.232 < 2e-16 ***
## F1$HeightL -0.008225 0.002622 -3.137 0.00173 **
## F1$HeightM -0.013666 0.002630 -5.197 2.26e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.04406 on 1789 degrees of freedom
## Multiple R-squared: 0.0149, Adjusted R-squared: 0.0138
## F-statistic: 13.53 on 2 and 1789 DF, p-value: 1.468e-06
#Chlorophyll ANOVA
HCA = lm(F1$Chl ~ F1$Height)
anova(FCA)
## Analysis of Variance Table
##
## Response: F1$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Tree.ID 158 47130 298.29 1.3395 0.004474 **
## Residuals 1633 363634 222.68
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Flavonol ANOVA
HFA = lm(F1$Flav ~ F1$Height)
anova(HFA)
## Analysis of Variance Table
##
## Response: F1$Flav
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 0.915 0.45758 7.4943 0.0005739 ***
## Residuals 1789 109.232 0.06106
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#NBI ANOVA
HNA = lm(F1$NBI ~ F1$Height)
anova(HNA)
## Analysis of Variance Table
##
## Response: F1$NBI
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 100 50.044 0.6992 0.4971
## Residuals 1789 128039 71.570
#Grouping data by ROw
F1R = group_by(F1,Row)
F1R = summarise(F1R,Chl = mean(Chl,na.rm=T), NBI = mean(NBI, ra.nm = T), Anth = mean(Anth, na.rm=T),Flav = mean(Flav,na.rm =T))
#Boxplot Anthocyanin Height
RoAnth <- ggplot(F1) + aes(x = Row, y = Anth) + geom_boxplot() +geom_hline(yintercept = AMF, color = "purple4") + ylab("Anthocyanin Measure") + xlab("Row") + ggtitle("Anthocyanin of F1 population by Row") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of Anthocyanin
RoHAnth <- ggplot(F1R) + aes(x = Anth) + geom_histogram()
#Display plots
grid.arrange(RoAnth,RoHAnth)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin ANOVA
RoAA = lm(F1$Anth ~ F1$Row)
anova(RoAA)
## Analysis of Variance Table
##
## Response: F1$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Row 49 0.2346 0.0047878 2.5339 4.261e-08 ***
## Residuals 1742 3.2914 0.0018895
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot Chlorophyll F1
RoChl <- ggplot(F1) + aes(x = Row, y = Chl) + geom_boxplot() +geom_hline(yintercept = CMF, color = "purple4") + ylab("Chlorophyll Measure") + xlab("Row") + ggtitle("Chlorophyll of F1 Population by Row") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of Chlorophyll
RoHChl <- ggplot(F1R) + aes(x = Chl) + geom_histogram()
#Display plots
grid.arrange(RoChl,RoHChl)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin ANOVA
RoCA = lm(F1$Chl ~ F1$Row)
anova(RoCA)
## Analysis of Variance Table
##
## Response: F1$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Row 49 21394 436.61 1.9533 0.0001046 ***
## Residuals 1742 389370 223.52
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot Flavanol F1
RoFlav <- ggplot(F1) + aes(x = Row, y = Flav) + geom_boxplot() +geom_hline(yintercept = FMF, color = "purple4") + ylab("Flavanol Measure") + xlab("Row") + ggtitle("Flavonol of F1 Population by Row") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of Flavonol
RoHFlav <- ggplot(F1R) + aes(x = Flav) + geom_histogram()
#Display plots
grid.arrange(RoFlav,RoHFlav)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin ANOVA
RoFA = lm(F1$Flav ~ F1$Row)
anova(RoFA)
## Analysis of Variance Table
##
## Response: F1$Flav
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Row 49 8.215 0.167646 2.865 3.11e-10 ***
## Residuals 1742 101.933 0.058515
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot NBI F1
RoNBI <- ggplot(F1) + aes(x = Row, y = NBI) + geom_boxplot() +geom_hline(yintercept = NMF, color = "purple4") + ylab("NBI Measure") + xlab("Row") + ggtitle("NBI of F1 Population by Row") + theme_classic();plot +stat_boxplot(notch = TRUE)
## NULL
#Histogram of NBI
RoHNBI <- ggplot(F1R) + aes(x = NBI) + geom_histogram()
#Display plots
grid.arrange(RoNBI,RoHNBI)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#Anthocyanin ANOVA
RoNA = lm(F1$NBI ~ F1$Row)
anova(RoNA)
## Analysis of Variance Table
##
## Response: F1$NBI
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Row 49 7866 160.527 2.325 8.14e-07 ***
## Residuals 1742 120273 69.043
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Making Column Values Factors
F1$Column = as.factor(F1$Column)
#Grouping data by Column
F1C = group_by(F1,Column)
F1C = summarise(F1R,Chl = mean(Chl,na.rm=T), NBI = mean(NBI, ra.nm = T), Anth = mean(Anth, na.rm=T),Flav = mean(Flav,na.rm =T))
#Boxplot Anthocyanin Height
CAnth <- ggplot(F1) + aes(x = Column, y = Anth) + geom_boxplot() +geom_hline(yintercept = AMF, color = "purple4") + ylab("Anthocyanin Measure") + xlab("Column") + ggtitle("Anthocyanin of F1 population by Column") + theme_classic();plot +stat_boxplot(notch = TRUE);CAnth
## NULL
#Anthocyanin ANOVA
CAA = lm(F1$Anth ~ F1$Column)
anova(CAA)
## Analysis of Variance Table
##
## Response: F1$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Column 3 0.0122 0.0040655 2.0687 0.1024
## Residuals 1788 3.5138 0.0019652
#Boxplot Chlorophyll F1
CChl <- ggplot(F1) + aes(x = Column, y = Chl) + geom_boxplot() +geom_hline(yintercept = CMF, color = "purple4") + ylab("Chlorophyll Measure") + xlab("Column") + ggtitle("Chlorophyll of F1 Population by Column") + theme_classic();plot +stat_boxplot(notch = TRUE, show.legend = TRUE);CChl
## NULL
#Anthocyanin ANOVA
CCA = lm(F1$Chl ~ F1$Column)
anova(CCA)
## Analysis of Variance Table
##
## Response: F1$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Column 3 1586 528.66 2.3101 0.07453 .
## Residuals 1788 409178 228.85
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot Flavanol F1
CFlav <- ggplot(F1) + aes(x = Column, y = Flav) + geom_boxplot() +geom_hline(yintercept = FMF, color = "purple4") + ylab("Flavanol Measure") + xlab("Column") + ggtitle("Flavonol of F1 Population by Column") + theme_classic();plot +stat_boxplot(notch = TRUE);CFlav
## NULL
#Anthocyanin ANOVA
CFA = lm(F1$Flav ~ F1$Column)
anova(CFA)
## Analysis of Variance Table
##
## Response: F1$Flav
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Column 3 2.305 0.76823 12.737 3.087e-08 ***
## Residuals 1788 107.843 0.06031
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Boxplot NBI F1
CNBI <- ggplot(F1) + aes(x = Column, y = NBI) + geom_boxplot() +geom_hline(yintercept = NMF, color = "purple4") + ylab("NBI Measure") + xlab("Column") + ggtitle("NBI of F1 Population by Column") + theme_classic();plot +stat_boxplot(notch = TRUE);CNBI
## NULL
#Anthocyanin ANOVA
CNA = lm(F1$NBI ~ F1$Column)
anova(CNA)
## Analysis of Variance Table
##
## Response: F1$NBI
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Column 3 821 273.626 3.8427 0.009333 **
## Residuals 1788 127318 71.207
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Anthocyanin
CRHA = lm(F1$Anth ~ F1$Height*F1$Column*F1$Row)
anova(CRHA)
## Analysis of Variance Table
##
## Response: F1$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 0.05255 0.0262759 14.9537 3.788e-07 ***
## F1$Column 3 0.01228 0.0040942 2.3300 0.0727244 .
## F1$Row 49 0.23127 0.0047199 2.6861 6.175e-09 ***
## F1$Height:F1$Column 6 0.02055 0.0034247 1.9490 0.0699958 .
## F1$Height:F1$Row 98 0.20024 0.0020433 1.1628 0.1394606
## F1$Column:F1$Row 106 0.28473 0.0026861 1.5287 0.0006952 ***
## F1$Height:F1$Column:F1$Row 212 0.41375 0.0019517 1.1107 0.1490621
## Residuals 1315 2.31066 0.0017572
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Remove insignificant variables
CRHA2 = lm(F1$Anth ~ F1$Height*F1$Row)
anova(CRHA2)
## Analysis of Variance Table
##
## Response: F1$Anth
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 0.05255 0.0262759 14.2135 7.586e-07 ***
## F1$Row 49 0.23404 0.0047763 2.5837 2.178e-08 ***
## F1$Height:F1$Row 98 0.20394 0.0020810 1.1257 0.1942
## Residuals 1642 3.03551 0.0018487
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Chlorophyll
CRHC = lm(F1$Chl ~ F1$Height*F1$Column*F1$Row)
anova(CRHC)
## Analysis of Variance Table
##
## Response: F1$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 853 426.30 2.0422 0.130152
## F1$Column 3 1577 525.57 2.5178 0.056677 .
## F1$Row 49 21813 445.16 2.1326 1.244e-05 ***
## F1$Height:F1$Column 6 1282 213.61 1.0233 0.408244
## F1$Height:F1$Row 98 27033 275.85 1.3215 0.022708 *
## F1$Column:F1$Row 106 24037 226.77 1.0863 0.265386
## F1$Height:F1$Column:F1$Row 212 59670 281.46 1.3484 0.001427 **
## Residuals 1315 274499 208.74
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Remove insignificant variables
CRHC2 = lm(F1$Chl ~ F1$Height*F1$Row)
anova(CRHC2)
## Analysis of Variance Table
##
## Response: F1$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 853 426.30 1.9372 0.14444
## F1$Row 49 21279 434.27 1.9734 8.34e-05 ***
## F1$Height:F1$Row 98 27286 278.43 1.2652 0.04464 *
## Residuals 1642 361346 220.06
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Further Remove insignificant variables
CRHC3 = lm(F1$Chl ~ F1$Row)
anova(CRHC3)
## Analysis of Variance Table
##
## Response: F1$Chl
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Row 49 21394 436.61 1.9533 0.0001046 ***
## Residuals 1742 389370 223.52
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Flavonol
CRHF = lm(F1$Flav ~ F1$Height*F1$Column*F1$Row)
anova(CRHF)
## Analysis of Variance Table
##
## Response: F1$Flav
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 0.915 0.45758 9.3660 9.143e-05 ***
## F1$Column 3 2.323 0.77447 15.8523 3.957e-10 ***
## F1$Row 49 8.139 0.16611 3.4001 1.213e-13 ***
## F1$Height:F1$Column 6 1.004 0.16728 3.4240 0.002334 **
## F1$Height:F1$Row 98 5.743 0.05860 1.1995 0.096365 .
## F1$Column:F1$Row 106 14.790 0.13953 2.8559 < 2.2e-16 ***
## F1$Height:F1$Column:F1$Row 212 12.988 0.06126 1.2540 0.012358 *
## Residuals 1315 64.245 0.04886
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#NBI
CRHN = lm(F1$NBI ~ F1$Height*F1$Column*F1$Row)
anova(CRHN)
## Analysis of Variance Table
##
## Response: F1$NBI
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Height 2 100 50.044 0.7850 0.4563286
## F1$Column 3 818 272.802 4.2793 0.0051365 **
## F1$Row 49 7816 159.511 2.5021 8.551e-08 ***
## F1$Height:F1$Column 6 792 132.004 2.0707 0.0539220 .
## F1$Height:F1$Row 98 8175 83.418 1.3085 0.0268723 *
## F1$Column:F1$Row 106 7765 73.250 1.1490 0.1510179
## F1$Height:F1$Column:F1$Row 212 18842 88.877 1.3942 0.0004396 ***
## Residuals 1315 83831 63.750
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Remove insignificant variables
CRHM2 = lm(F1$NBI ~ F1$Row*F1$Column)
anova(CRHM2)
## Analysis of Variance Table
##
## Response: F1$NBI
## Df Sum Sq Mean Sq F value Pr(>F)
## F1$Row 49 7866 160.527 2.3456 6.383e-07 ***
## F1$Column 3 789 263.021 3.8432 0.00934 **
## F1$Row:F1$Column 106 7724 72.864 1.0647 0.31303
## Residuals 1633 111761 68.439
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Controlling for Height,Column,Row effects
Dat = F1
#Total Mean
Dat$ATmean = mean(Dat$Anth)
Dat$CTmean = mean(Dat$Chl)
Dat$FTmean = mean(Dat$Flav)
Dat$NTmean = mean(Dat$NBI)
#Remove Total Mean
Dat$Anth2 = Dat$Anth - Dat$ATmean
Dat$Chl2 = Dat$Chl - Dat$CTmean
Dat$Flav2 = Dat$Flav - Dat$FTmean
Dat$NBI2 = Dat$NBI - Dat$NTmean
#Height Mean
DatH = group_by(Dat, Height)
DatH = summarise(DatH, HAnth = mean(Anth, na.rm = T), HFlav = mean(Flav,na.rm = T))
#Add Height Mean to Data
Dat =merge(Dat, DatH, by.x = "Height")
#Calculate Height Mean Deviation from Total Mean
Dat$ATH <- Dat$ATmean - Dat$HAnth
Dat$FTH = Dat$FTmean - Dat$HFlav
#Controlling for Height Anth and Flav
Dat$Anth3 = Dat$Anth2 + Dat$ATH
Dat$Flav3 = Dat$Flav2 + Dat$FTH
#Column Mean
DatC = group_by(Dat, Column)
DatC = summarise(DatC, CFlav = mean(Flav,na.rm = T), CNBI = mean(NBI,na.rm = T))
#Add Height Mean to Data
Dat =merge(Dat, DatC, by.x = "Column")
#Calculate Height Mean Deviation from Total Mean
Dat$FTH = Dat$FTmean - Dat$CFlav
Dat$NTH = Dat$NTmean - Dat$CNBI
#Controlling for Column Flav and NBI
Dat$Flav4 = Dat$Flav3 + Dat$FTH
Dat$NBI3 = Dat$NBI2 + Dat$NTH
#Row Mean
DatR = group_by(Dat, Row)
DatR = summarise(DatR, RAnth = mean(Anth,na.rm = T),RChl = mean(Chl,na.rm = T), RFlav = mean(Flav,na.rm = T), RNBI = mean(NBI,na.rm = T))
#Add Row Mean to Data
Dat =merge(Dat, DatR, by.x = "Row")
#Calculate Row Mean Deviation from Total Mean
Dat$ATR = Dat$ATmean - Dat$RAnth
Dat$CTR = Dat$CTmean - Dat$RChl
Dat$FTR = Dat$FTmean - Dat$RFlav
Dat$NTR = Dat$NTmean - Dat$RNBI
#Controlling for Row in Anth, Chl, Flav and NBI
Dat$Anth4 = Dat$Anth3 + Dat$ATR
Dat$Chl3 = Dat$Chl2 + Dat$CTR
Dat$Flav5 = Dat$Flav4 + Dat$FTR
Dat$NBI4 = Dat$NBI3 + Dat$NTR
#Anova Checks
AnAnth = lm(Dat$Anth4 ~ Dat$Height*Dat$Column*Dat$Row)
anova(AnAnth)
## Analysis of Variance Table
##
## Response: Dat$Anth4
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Height 2 0.00000 0.0000012 0.0007 0.9993236
## Dat$Column 3 0.00900 0.0029994 1.7070 0.1637135
## Dat$Row 49 0.00061 0.0000125 0.0071 1.0000000
## Dat$Height:Dat$Column 6 0.02055 0.0034247 1.9490 0.0699958 .
## Dat$Height:Dat$Row 98 0.20024 0.0020433 1.1628 0.1394606
## Dat$Column:Dat$Row 106 0.28473 0.0026861 1.5287 0.0006952 ***
## Dat$Height:Dat$Column:Dat$Row 212 0.41375 0.0019517 1.1107 0.1490621
## Residuals 1315 2.31066 0.0017572
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AnChl = lm(Dat$Chl3 ~ Dat$Height*Dat$Column*Dat$Row)
anova(AnChl)
## Analysis of Variance Table
##
## Response: Dat$Chl3
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Height 2 737 368.65 1.7660 0.171413
## Dat$Column 3 1956 652.10 3.1239 0.025073 *
## Dat$Row 49 155 3.17 0.0152 1.000000
## Dat$Height:Dat$Column 6 1282 213.61 1.0233 0.408244
## Dat$Height:Dat$Row 98 27033 275.85 1.3215 0.022708 *
## Dat$Column:Dat$Row 106 24037 226.77 1.0863 0.265386
## Dat$Height:Dat$Column:Dat$Row 212 59670 281.46 1.3484 0.001427 **
## Residuals 1315 274499 208.74
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AnFlav = lm(Dat$Flav5 ~ Dat$Height*Dat$Column*Dat$Row)
anova(AnFlav)
## Analysis of Variance Table
##
## Response: Dat$Flav5
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Height 2 0.001 0.000491 0.0101 0.989993
## Dat$Column 3 0.012 0.004029 0.0825 0.969582
## Dat$Row 49 0.215 0.004387 0.0898 1.000000
## Dat$Height:Dat$Column 6 1.004 0.167281 3.4240 0.002334 **
## Dat$Height:Dat$Row 98 5.743 0.058602 1.1995 0.096365 .
## Dat$Column:Dat$Row 106 14.790 0.139527 2.8559 < 2.2e-16 ***
## Dat$Height:Dat$Column:Dat$Row 212 12.988 0.061264 1.2540 0.012358 *
## Residuals 1315 64.245 0.048855
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
AnNBI = lm(Dat$NBI4 ~ Dat$Height*Dat$Column*Dat$Row)
anova(AnNBI)
## Analysis of Variance Table
##
## Response: Dat$NBI4
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Height 2 80 39.936 0.6264 0.5346458
## Dat$Column 3 50 16.555 0.2597 0.8544529
## Dat$Row 49 22 0.451 0.0071 1.0000000
## Dat$Height:Dat$Column 6 792 132.004 2.0707 0.0539220 .
## Dat$Height:Dat$Row 98 8175 83.418 1.3085 0.0268723 *
## Dat$Column:Dat$Row 106 7765 73.250 1.1490 0.1510179
## Dat$Height:Dat$Column:Dat$Row 212 18842 88.877 1.3942 0.0004396 ***
## Residuals 1315 83831 63.750
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#New Heatmaps
#DatHM = group_by(Dat, Column, Row)
#DatHM = summarise(DatHM, Anth = mean(Anth4,na.rm = T), Chl = mean(Chl3,na.rm = T), Flav = mean(Flav5,na.rm = T), NBI = mean(NBI4,na.rm = T))
#write.xlsx(as.data.frame(DatHM), file = "DatHM.xlsx", sheetName ="Dat",col.names = T, row.names = F)
#Anthocyanin Heatmaps
AnthDoc <-read.xlsx("Anth.xlsx", sheetName = "Anth")
heatmaply(AnthDoc, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "Anth Before Correction")
AnthDoc2 <-read.xlsx("DatHM2.xlsx", sheetName = "Anth")
heatmaply(AnthDoc2, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "Anth After Correction")
#Chlorophyll Heatmaps
ChlDoc<-read.xlsx("Chl.xlsx", sheetName = "Chl")
heatmaply(ChlDoc, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "Chl Before Correction")
ChlDoc2 <-read.xlsx("DatHM2.xlsx", sheetName = "Chl")
heatmaply(ChlDoc2, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "Chl After Correction")
#Flavonol Heatmaps
FlavDoc<-read.xlsx("Flav.xlsx", sheetName = "Flav")
heatmaply(FlavDoc, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "Flav Before Correction")
FlavDoc2 <-read.xlsx("DatHM2.xlsx", sheetName = "Flav")
heatmaply(FlavDoc2, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "Flav After Correction")
#NBI Heatmaps
NBIDoc<-read.xlsx("NBI.xlsx", sheetName = "NBI")
heatmaply(NBIDoc, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "NBI Before Correction")
NBIDoc2 <-read.xlsx("DatHM2.xlsx", sheetName = "NBI")
heatmaply(NBIDoc2, xlab = "Column",ylab ="Row", Rowv = FALSE, Colv = FALSE, main = "NBI After Correction")
Comparing correlations between the 4 dualex measures
plot9 <-ggplot(Dat) + aes(x = Anth4, y = Chl3) + geom_point()
plot10 <-ggplot(Dat) + aes(x = Anth4, y = Flav5) + geom_point()
plot11<-ggplot(Dat) + aes(x = Anth4, y = NBI4) + geom_point()
plot12<-ggplot(Dat) + aes(x = Chl3, y = Flav5) + geom_point()
plot13<-ggplot(Dat) + aes(x = Chl3, y = NBI4) + geom_point()
plot14<-ggplot(Dat) + aes(x = Flav5, y = NBI4) + geom_point()
grid.arrange(plot9,plot10,plot11,plot12,plot13,plot14)
AnthComp = lm(Anth4 ~ Chl3*Flav5*NBI4, data = Dat)
anova(AnthComp)
## Analysis of Variance Table
##
## Response: Anth4
## Df Sum Sq Mean Sq F value Pr(>F)
## Chl3 1 0.30271 0.302706 192.4807 < 2.2e-16 ***
## Flav5 1 0.05792 0.057917 36.8277 1.572e-09 ***
## NBI4 1 0.01331 0.013306 8.4608 0.0036737 **
## Chl3:Flav5 1 0.02196 0.021955 13.9607 0.0001925 ***
## Chl3:NBI4 1 0.03008 0.030085 19.1299 1.292e-05 ***
## Flav5:NBI4 1 0.00791 0.007905 5.0266 0.0250834 *
## Chl3:Flav5:NBI4 1 0.00005 0.000055 0.0348 0.8519736
## Residuals 1784 2.80562 0.001573
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ChlComp = lm(Chl3 ~ Anth4*Flav5*NBI4, data = Dat)
anova(ChlComp)
## Analysis of Variance Table
##
## Response: Chl3
## Df Sum Sq Mean Sq F value Pr(>F)
## Anth4 1 36383 36383 1.9357e+04 < 2.2e-16 ***
## Flav5 1 383 383 2.0354e+02 < 2.2e-16 ***
## NBI4 1 342014 342014 1.8196e+05 < 2.2e-16 ***
## Anth4:Flav5 1 569 569 3.0285e+02 < 2.2e-16 ***
## Anth4:NBI4 1 115 115 6.1416e+01 7.879e-15 ***
## Flav5:NBI4 1 6552 6552 3.4859e+03 < 2.2e-16 ***
## Anth4:Flav5:NBI4 1 1 1 3.2830e-01 0.5667
## Residuals 1784 3353 2
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
FlavComp = lm(Flav5 ~ Anth4*Chl3*NBI4, data = Dat)
anova(FlavComp)
## Analysis of Variance Table
##
## Response: Flav5
## Df Sum Sq Mean Sq F value Pr(>F)
## Anth4 1 2.455 2.455 198.4244 < 2.2e-16 ***
## Chl3 1 0.105 0.105 8.4580 0.003679 **
## NBI4 1 73.486 73.486 5940.1653 < 2.2e-16 ***
## Anth4:Chl3 1 0.438 0.438 35.4071 3.213e-09 ***
## Anth4:NBI4 1 0.121 0.121 9.7847 0.001788 **
## Chl3:NBI4 1 0.295 0.295 23.8417 1.139e-06 ***
## Anth4:Chl3:NBI4 1 0.028 0.028 2.2925 0.130175
## Residuals 1784 22.070 0.012
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
NBIComp = lm(NBI4 ~ Anth4*Chl3*Flav5, data = Dat)
anova(NBIComp)
## Analysis of Variance Table
##
## Response: NBI4
## Df Sum Sq Mean Sq F value Pr(>F)
## Anth4 1 12013 12013 1.5967e+04 < 2.2e-16 ***
## Chl3 1 95398 95398 1.2679e+05 < 2.2e-16 ***
## Flav5 1 9255 9255 1.2300e+04 < 2.2e-16 ***
## Anth4:Chl3 1 36 36 4.7348e+01 8.199e-12 ***
## Anth4:Flav5 1 118 118 1.5676e+02 < 2.2e-16 ***
## Chl3:Flav5 1 1393 1393 1.8521e+03 < 2.2e-16 ***
## Anth4:Chl3:Flav5 1 1 1 1.6591e+00 0.1979
## Residuals 1784 1342 1
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Plots Flowering vs Non-Flowering
plot39<- ggplot(Dat) + aes(x = Flower, y = Anth4) + geom_boxplot()
plot40<- ggplot(Dat) + aes(x = Flower, y = Chl3) + geom_boxplot()
plot41<- ggplot(Dat) + aes(x = Flower, y = Flav5) + geom_boxplot()
plot42<- ggplot(Dat) + aes(x = Flower, y = NBI4) + geom_boxplot()
grid.arrange(plot39,plot40,plot41,plot42)
AF<- lm(Dat$Anth4 ~ Dat$Flower)
anova(AF)
## Analysis of Variance Table
##
## Response: Dat$Anth4
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Flower 1 0.0002 0.00023977 0.1325 0.7159
## Residuals 1790 3.2393 0.00180967
CF<- lm(Dat$Chl3 ~ Dat$Flower)
anova(CF)
## Analysis of Variance Table
##
## Response: Dat$Chl3
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Flower 1 37 36.997 0.1701 0.6801
## Residuals 1790 389333 217.505
FF<- lm(Dat$Flav5 ~ Dat$Flower)
anova(FF)
## Analysis of Variance Table
##
## Response: Dat$Flav5
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Flower 1 0.248 0.247514 4.4866 0.0343 *
## Residuals 1790 98.750 0.055168
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
NF<- lm(Dat$NBI4 ~ Dat$Flower)
anova(NF)
## Analysis of Variance Table
##
## Response: Dat$NBI4
## Df Sum Sq Mean Sq F value Pr(>F)
## Dat$Flower 1 12 11.938 0.1788 0.6725
## Residuals 1790 119544 66.784